const wx = require('jweixin-module');
const wechat = {
    isWechat() {
        var ua = window.navigator.userAgent.toLowerCase();
        if (ua.match(/micromessenger/i) == 'micromessenger') {
            // console.log('是微信客户端')
            return true;
        } else {
            // console.log('不是微信客户端')
            return false;
        }
    },


    login() {
        var local = window.location.href // 获取页面url
        var appid = 'wx49df57ba8de163b9'
        //var appid = 'wx29f54ff91947e2a4'
        window.location.href =
            `https://open.weixin.qq.com/connect/oauth2/authorize?appid=${appid}&redirect_uri=${encodeURIComponent(local)}&response_type=code&scope=snsapi_userinfo&state=STATE#wechat_redirect`;
    },
    getCode() {
        return wechat.getUrlCode().code
    },
    getUrlCode() { // 截取url中的code方法
        var url = location.search
        this.winUrl = url
        var theRequest = new Object()
        if (url.indexOf("?") != -1) {
            var str = url.substr(1)
            var strs = str.split("&")
            for (var i = 0; i < strs.length; i++) {
                theRequest[strs[i].split("=")[0]] = (strs[i].split("=")[1])
            }
        }
        return theRequest
    },
    getConfig(data) {
        const {
            appId,
            timestamp,
            nonceStr,
            signature,
        } = data;
        wx.config({
            debug: false, // 开启调试模式,调用的所有api的返回值会在客户端alert出来，若要查看传入的参数，可以在pc端打开，参数信息会通过log打出，仅在pc端时才会打印。
            appId, // 必填，公众号的唯一标识
            timestamp, // 必填，生成签名的时间戳
            nonceStr, // 必填，生成签名的随机串
            signature, // 必填，签名，见附录1
            jsApiList: ['chooseWXPay'] // 必填，需要使用的JS接口列表，所有JS接口列表见附录2
        });
        wx.ready(function() {
            wx.checkJsApi({
                jsApiList: ['chooseWXPay'],
                success: function(res) {
                    // alert('公众号支付ok')
                },
                fail: function(res) {
                    // alert('公众号支付no')
                }
            })
        })

    },
    wxPay(data, callback, errCallback) {
        const {
            appId,
            nonceStr,
            sign,
            signType,
            timeStamp
        } = data;

        // alert('sign =' + sign)
        // wx.config({
        // 	debug: false, // 开启调试模式,调用的所有api的返回值会在客户端alert出来，若要查看传入的参数，可以在pc端打开，参数信息会通过log打出，仅在pc端时才会打印。
        // 	appId, // 必填，公众号的唯一标识
        // 	timestamp, // 必填，生成签名的时间戳
        // 	nonceStr, // 必填，生成签名的随机串
        // 	signature: sign, // 必填，签名，见附录1
        // 	jsApiList: ['chooseWXPay'] // 必填，需要使用的JS接口列表，所有JS接口列表见附录2
        // });

        wx.ready(function() {
            wx.chooseWXPay({
                timestamp: timeStamp, // 支付签名时间戳，注意微信jssdk中的所有使用timestamp字段均为小写。但最新版的支付后台生成签名使用的timeStamp字段名需大写其中的S字符
                nonceStr, // 支付签名随机串，不长于 32 位
                'package': data['package'], // 统一支付接口返回的prepay_id参数值，提交格式如：prepay_id=***）
                signType: signType, // 签名方式，默认为'SHA1'，使用新版支付需传入'MD5'
                paySign: sign, // 支付签名
                success(res) {
                    // 支付成功后的回调函数
                    callback(res);
                },
                fail(res) {
                    errCallback(res);
                }
            });
        });

        wx.error(function(res) {
            // config信息验证失败会执行error函数，如签名过期导致验证失败，具体错误信息可以打开config的debug模式查看，也可以在返回的res参数中查看，对于SPA可以在这里更新签名。
            /*alert("config信息验证失败");*/
            consoe.log('加载jssdk错误')
        });
    }
}

export default wechat